#include <stdio.h>
#include <assert.h>

const char month2[12][10] = {
	{'J', 'a', 'n', 'u', 'a', 'r', 'y', 0, 0, 0,},
	{'F', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'M', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'A', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'M', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'J', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'J', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'A', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'S', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'O', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'N', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ', ' ',},
	{'D', 'e', 'c', 'e', 'm', 'b', 'e', 'r', 0, 0,},
};

const char * get_month(int month)
{
	return &month2[month][0];
}

void main()
{

}

#if 0
/*
 * intel
 */
0000000000001129 <get_month>:
    1129:	f3 0f 1e fa          	endbr64 
    112d:	55                   	push   %rbp
    112e:	48 89 e5             	mov    %rsp,%rbp
    1131:	89 7d fc             	mov    %edi,-0x4(%rbp)	// parameter
    1134:	8b 45 fc             	mov    -0x4(%rbp),%eax	// eax=parameter
    1137:	48 63 d0             	movslq %eax,%rdx	// rdx=parameter
    113a:	48 89 d0             	mov    %rdx,%rax	// rax=parameter
    113d:	48 c1 e0 02          	shl    $0x2,%rax	// rax=parameter<<2
    1141:	48 01 d0             	add    %rdx,%rax	// rax=(parameter<<2)+(parameter<<2)
    1144:	48 01 c0             	add    %rax,%rax	// rax=((parameter<<2)+(parameter<<2))+((parameter<<2)+(parameter<<2))
    1147:	48 8d 15 d2 0e 00 00 	lea    0xed2(%rip),%rdx        # 2020 <month2>	rdx=month2
    114e:	48 01 d0             	add    %rdx,%rax	// rax=month2+(((parameter<<2)+(parameter<<2))+((parameter<<2)+(parameter<<2)))
    1151:	5d                   	pop    %rbp
    1152:	c3                   	retq   

0000000000001153 <main>:
    1153:	f3 0f 1e fa          	endbr64 
    1157:	55                   	push   %rbp
    1158:	48 89 e5             	mov    %rsp,%rbp
    115b:	90                   	nop
    115c:	5d                   	pop    %rbp
    115d:	c3                   	retq   
    115e:	66 90                	xchg   %ax,%ax

/*
 * arm
 */
000000000040051c <get_month>:
  40051c:	d10043ff 	sub	sp, sp, #0x10
  400520:	b9000fe0 	str	w0, [sp, #12]	
  400524:	b9800fe1 	ldrsw	x1, [sp, #12]	// x1=param
  400528:	aa0103e0 	mov	x0, x1		// x0=param
  40052c:	d37ef400 	lsl	x0, x0, #2	// x0=param<<2
  400530:	8b010000 	add	x0, x0, x1	// x0=(param<<2)+param
  400534:	d37ff800 	lsl	x0, x0, #1	// x0=((param<<2)+param)<<1
  400538:	90000001 	adrp	x1, 400000 <_init-0x3b0>
  40053c:	91182021 	add	x1, x1, #0x608	// x1=month2
  400540:	8b010000 	add	x0, x0, x1	// x0=month2+(((param<<2)+param)<<1)
  400544:	910043ff 	add	sp, sp, #0x10
  400548:	d65f03c0 	ret

000000000040054c <main>:
  40054c:	d503201f 	nop
  400550:	d65f03c0 	ret
  400554:	00000000 	.inst	0x00000000 ; undefined


#endif

